(function() {
	// 鸟类
	var Bird = window.Bird = function() {
		// 随机一个小鸟的颜色
		this.color = parseInt(Math.random() * 3);
		// 觉得用图，小鸟有三个翅膀状态
		this.birdArr = [
			game.r["bird" + this.color + "_0"],
			game.r["bird" + this.color + "_1"],
			game.r["bird" + this.color + "_2"]
		]
		// 翅膀状态
		this.wingStep = 0;
		// 小鸟的位置(注意：这个位置是真实的物理位置,并且是小鸟中心点的位置)
		// 图片宽度是48,24是半个图片宽度
		this.x = game.canvas.width * (1 - 0.618) - 24;
		this.y = 100;
		// 鸟帧数,用于下落，上升算法
		this.fno = 0;
		// 角度
		this.deg = 0;
		// 判断开关
		this.isFly = false;
	}
	// 更新
	Bird.prototype.updata = function() {

		// 改变翅膀状态，每固定帧数扑打一次
		this.wing();

		// 掉落算法
		if(this.isFly) {
			// 开关为true时上升
			this.y -= (15 - this.fno) * 0.4;
			if(this.fno > 15) {
				this.isFly = false;
				this.fno = 0;
			}
		} else {
			// 开关为false时下落
			this.y += this.fno * 0.6;
		}
		this.fno++;
		this.deg += 0.03;
		// 验证小鸟不能超过上面视口范围
		if(this.y < 0) {
			this.y = 0;
		}
		// 计算自己的四个碰撞检测值
		this.T = this.y - 12; // 13是图片上面的空隙
		this.R = this.x + 17;
		this.B = this.y + 12;
		this.L = this.x - 17;
		// 验证小鸟是否落地
		if(this.B > game.canvas.height * 0.78) {
			// 死亡就进入场景4
			game.sm.enter(4);
		}
	}
	// 渲染
	Bird.prototype.render = function() {
		game.ctx.save();
		// 将坐标系拉到小鸟的中心点
		game.ctx.translate(this.x, this.y);
		// 旋转
		game.ctx.rotate(this.deg);
		// 绘制图片
		game.ctx.drawImage(this.birdArr[this.wingStep], -24, -24);
		game.ctx.restore();
	}
	// 飞
	Bird.prototype.fly = function() {
		this.isFly = true;
		this.deg = -0.6;
		this.fno = 0;
	}
	// 扑打翅膀
	Bird.prototype.wing = function() {
		game.fno % 3 == 0 && this.wingStep++;
		if(this.wingStep > 2) {
			this.wingStep = 0;
		}
	}
})();